home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / redakcyjne / programy / Tlen 6.0.1.12 pl / tleninst60112.exe / sdk / Plugin_src / options-bcb / Unit1.cpp < prev    next >
C/C++ Source or Header  |  2006-09-18  |  4KB  |  136 lines

  1. //---------------------------------------------------------------------------
  2.  
  3. #include <vcl.h>
  4. #include <windows.h>
  5. #pragma hdrstop
  6.  
  7. #pragma argsused
  8.  
  9. #include "../../TlenSources/plugin/plugin_struct.h"
  10. #include "../../TlenSources/plugin/plugin_options.h"
  11.  
  12. #include "Unit3.h"
  13.  
  14. HINSTANCE hInst;
  15. TLENPLUGINFUNCTIONS *tlen_functions;
  16. TForm3 *option_window = NULL;
  17. HBITMAP icon1, icon2;
  18.  
  19. TLENPLUGININFO pluginInfo={
  20.     sizeof(TLENPLUGININFO),
  21.     "Obs│uga opcji - BCB",
  22.         PLUGIN_API_VERSION,
  23.     MAKE_DWORD_VERSION(1,2,3,4),
  24.     "Opis pluginu",
  25.     "⌐ Prawa autorskie",
  26.     "Producent",
  27.     "E@mail",
  28.     "http://www",
  29.     0,
  30.     0,
  31.         0,
  32.         0
  33. };
  34.  
  35. extern "C" __declspec(dllexport) TLENPLUGININFO* GetPluginInfo(DWORD TlenVersion);
  36. extern "C" __declspec(dllexport) int LoadPlugin(TLENPLUGINFUNCTIONS *tlen_functions);
  37. extern "C" __declspec(dllexport) int UnloadPlugin(void);
  38.  
  39. static int OptionPageClicked(WPARAM wParam, LPARAM lParam)
  40. {
  41.  TlenOptionPageShowInfo *info = (TlenOptionPageShowInfo *) wParam;
  42.  strcpy(info->Caption, "Przyk│adowa nazwa zak│adki");
  43.  strcpy(info->Description, "To jest opis zak│adki, tutaj mo┐na wstawiµ d│u┐szy tekst, aby wyja£niµ u┐ytkownikowi, co siΩ tu dzieje.");
  44.  
  45.  switch (info->Action)
  46.  {
  47.   case TLEN_OPTIONS_PAGE_ACTION_SHOW:
  48.   {
  49.    if (!option_window)
  50.    {
  51.     option_window = new TForm3(NULL);
  52.     option_window->ParentWindow = info->Handle;
  53.     tlen_functions->CallTlenFunction(hInst, TLEN_ADD_DIALOG_HANDLE, (WPARAM) option_window->Handle, NULL);
  54.    }
  55.  
  56.    info->Icon = icon1;
  57.    info->Flags |= TLEN_OPTIONS_PAGEINFO_FLAG_ICONTRANS;
  58.    option_window->SetBounds(info->x, info->y, info->width, info->height);
  59.    option_window->Visible = true;
  60.    break;
  61.   }
  62.  
  63.   case TLEN_OPTIONS_PAGE_ACTION_HIDE:
  64.   {
  65.    if (option_window) option_window->Visible = false;
  66.    break;
  67.   }
  68.  
  69.   case TLEN_OPTIONS_PAGE_ACTION_OK:
  70.   {
  71.    //KlikniΩto ok, wiΩc przetwarzamy tutaj opcje wybrane przez u┐ytkownika
  72.   }
  73.  
  74.   case TLEN_OPTIONS_PAGE_ACTION_APPLY:
  75.   case TLEN_OPTIONS_PAGE_ACTION_CANCEL:
  76.   {
  77.    //Usuwamy uchwyt okienka z listy i niszczmy je
  78.    if (option_window)
  79.    {
  80.     tlen_functions->CallTlenFunction(hInst, TLEN_REMOVE_DIALOG_HANDLE, (WPARAM) option_window->Handle, NULL);
  81.     delete option_window;
  82.     option_window = NULL;
  83.    }
  84.    break;
  85.   }
  86.  }
  87.  
  88.  return 0;
  89. }
  90.  
  91.  
  92. int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
  93. {
  94.     hInst=hinst;
  95.         return 1;
  96. }
  97.  
  98. __declspec(dllexport) TLENPLUGININFO* GetPluginInfo(DWORD tlenVersion)
  99. {
  100.     return &pluginInfo;
  101. }
  102.  
  103. __declspec(dllexport) int LoadPlugin(TLENPLUGINFUNCTIONS *functions)
  104. {
  105.     icon1 = (HBITMAP) LoadImage(hInst, MAKEINTRESOURCE(104),IMAGE_BITMAP, 32, 32, NULL);
  106.     icon2 = (HBITMAP) LoadImage(hInst, MAKEINTRESOURCE(105),IMAGE_BITMAP, 16, 16, NULL);
  107.  
  108.     tlen_functions = functions;
  109.  
  110.     TlenOptionPageDefinition def;
  111.     InitializeStruct(def);
  112.     def.CallBack = OptionPageClicked;
  113.     def.ID = "BasicPluginBCB/Page1";
  114.     def.Caption = "Dodatkowa zak│adka 2";
  115.     def.Icon = icon2;
  116.     def.Flags = TLEN_OPTIONS_PAGEDEF_FLAG_TLENCOLOR | TLEN_OPTIONS_PAGEDEF_FLAG_ICONTRANS;
  117.  
  118.     tlen_functions->CallTlenFunction(hInst, TLEN_ADD_OPTIONS_PAGE, (WPARAM) hInst, (LPARAM) &def);
  119.     return 0;
  120. }
  121.  
  122. __declspec(dllexport) int UnloadPlugin(void)
  123. {
  124.     if (option_window)
  125.         {
  126.          tlen_functions->CallTlenFunction(hInst, TLEN_REMOVE_DIALOG_HANDLE, (WPARAM) option_window->Handle, NULL);
  127.          delete option_window;
  128.         }
  129.  
  130.     DeleteObject(icon1);
  131.     DeleteObject(icon2);
  132.     return 0;
  133. }
  134.  
  135.  
  136.